3
תגובות

מחלקת משתמשים

פתח soogo ,
מישהו יכול להביא לי קוד של מחלקת משתמשים שכתובה בצורה פשוטה אבל מקצועית
כדי שאני אוכל ללמוד יותר איך לכתוב מחלקות נכונות

3 תשובות

avatar ענה intval ב 04 לספטמבר 2014 #

יש בעיה עם השאלה הזו, בגלל שמי שמעדיף לכתוב "בצורה מקצועית" בדרך כלל לא כותב מחלקת משתמשים, אלא מארגן את הקוד שלו בצורה שונה לגמרי. מחלקות שמייצגות נתונים, מחלקות שעושות פעולות, מחלקות שאחראיות על פלט, מחלקות שאחראיות על גישה למסד
וההפרדה היא על בסיס מה המחלקה עושה ולא על בסיס בוא נדחוף הכל למחלקת משתמשים כי זה מתעסק במשתמשים

avatar ענה soogo ב 04 לספטמבר 2014 #

לפי מה שהבנתי לכל טבלה במסד צריך להיות מחלקה

avatar ענה OrelBeY ב 04 לספטמבר 2014 #

אבל סביר להניח שהיא תהיה רק מחלקת נתונים.

class UserModel
{
    public function getUsername();
    public function getFirstName();
    public function getPassword();
    public function getGroups();
}

מחלקה אחרת תפעל על המחלקה הזאת:
class UserManager
{
    public function register(...);
    public function login(...);
    public function restorePassword(...);
    public function isInGroup(...);
}

מחלקה אחרת תקשר בין המחלקה הזאת למאגר נתונים:
class UserRepository
{
    public function byId(...);
    public function byFirstName(...);
    public function getAllUsers(...);
    public function getUsersInGroup(...);
}

והמחלקה האחרונה תקשר בין הבקשה מהלקוח לתשובה ללקוח באמצעות UserModel, UserManager וקובצי תצוגה:
class UserController
{
    public function register(...)
    {
        try {
            $user = $userManager->register(...);
            // notify by email
            // show view
        } catch (UserAlreadyExistsException $e) {
            // ...
        } catch ...
    }

    public function login(...);
    public function restorePassword(...);
    public function viewProfile(...);
}